// pages/evaluation/index.js
import AI from '../../utils/ai';
import DB from '../../utils/db';

Page({

  /**
   * 页面的初始数据
   */
  data: {
    form: {
      evaluation: '',
      openId: '',
    },
    count: 0,
  },

  onEvaluationInput(e) {
    this.setData({
      'form.evaluation': e.detail.value
    })
  },

  onVisibleChange(e) {
    this.setData({
      visible: e.detail.visible,
    });
  },
  onVisible(e) {
    this.setData({
      visible: false,
    });
  },
  onCopy(e) {
    wx.showToast({
      title: '替换成功',
      icon: 'success'
    })
    this.setData({
      'form.evaluation': this.data.text,
      visible: false,
    });
  },

  onAi() {
    wx.showLoading({
      title: 'AI优化中\n预计2-4分钟', // 这里设置提示词
      mask: true // 显示透明蒙层
    });
    let postText = wx.getStorageSync("专业")
    let userInput = `帮我生成一篇通用个人优势`
    if (this.data.form.evaluation !== "") {
      userInput = this.data.form.evaluation
    } else if (postText !== "") {
      userInput = `帮我生成一篇${postText}个人优势`
    }
    const systemPrompt = `# HR 个人优势转换专家
    根据新加坡提示工程大赛的获胜框架 CO-STAR，构建完整的提示词：
    ## C - Context（背景信息）
    你是一位专业的 HR，专注于将用户提供的各种输入内容准确地转换为个人优势表述。
    ## O - Objective（明确目标）
    迅速且精准地按照用户要求，将其输入的内容总结为个人在专业资质、工作经验、工作技能、专业能力等方面的优势。
    ## S - Style（希望的风格）
    简洁明了、专业直接。
    ## T - Tone（语调）
    客观、正式。
    ## A - Audience（目标受众）
    需要明确自身优势以用于求职、职业发展等相关场景的用户。
    ## R - Response（回应类型）
    工作能力：[相关经验/背景]
    个人优势：[具体技能]、[沟通能力表现]、[表达能力体现]、[学习能力情况]
    综合素养：[针对岗位的优势]
      ## 限制：
    - 只开展个人优势优化工作，不回答与项目内容无关的问题。
    - 文字要极为简炼，重点清晰突出，只罗列优势点，不做任何论述。
    - 严格依照用户要求的内容进行编写，不得擅自更改。
    - 使用纯文本形式输出`

    AI.hunyuan("hunyuan-t1-latest", systemPrompt, userInput).then(result => {
      // console.log("AI生成的结果:", result);
      wx.hideLoading();
      this.setData({
        text: result.replace(/^[\s]+/, ""),
        visible: true
      })
    })
      .catch(error => {
        wx.hideLoading();
        wx.showToast({
          title: '调用AI失败',
          icon: 'error'
        })
      });
  },

  updateEvaluation() {
    wx.showLoading({
      title: '',
    });
    DB.update('updateEvaluation', this.data.form).then(() => {
      wx.hideLoading();
      wx.reLaunch({
        url: `/pages/createResume/index`,
      });
    }).catch(() => {
      wx.hideLoading();
      wx.showToast({
        title: '更新失败',
        icon: 'error',
        duration: 2000
      });
    });

  },

  addEvaluation() {
    this.data.form.openId = this.data.openId
    // console.log(this.data.form)
    wx.showLoading({
      title: '',
    });
    DB.add('addEvaluation', this.data.form).then(() => {
      wx.hideLoading();
      wx.reLaunch({
        url: `/pages/createResume/index`,
      });
    }).catch(() => {
      wx.hideLoading();
      wx.showToast({
        title: '添加失败',
        icon: 'error',
        duration: 2000
      });
    });
  },

  selectEvaluation(id) {
    DB.select('selectEvaluation', id).then((resp) => {

      this.setData({
        form: resp.result.data,
        count: 1
      });
      wx.hideLoading();
    }).catch(() => {
      console.log(e);
      this.setData({
        showUploadTip: true
      });
      wx.hideLoading();
    });
  },



  /**
   * 生命周期函数--监听页面加载
   */
  onLoad(options) {
    this.setData({
      'openId': wx.getStorageSync("openId")
    })
    console.log(options.id)
    if (options.id != 'undefined') {
      wx.showLoading({
        title: '数据加载中...', // 这里设置提示词
        mask: true // 显示透明蒙层
      });
      this.selectEvaluation(options.id)
    }
  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady() {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow() {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide() {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload() {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh() {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom() {

  },

  /**
   * 用户点击右上角分享
   */
  // onShareAppMessage() {

  // }
})